Open AI 有 Azure 的版本,簡單來說就是把 Open AI 服務放進 Azure 裡。目前三大公雲裡面只有 Azure 有 Open AI,畢竟微軟是 Open AI 最大的投資者。在 Azure Open AI 有很多好處,例如說可以做 RBAC 這種比較好的權限控管,還有可以設定在 V-net 內只讓允許的 server 訪問,還有其他如監控等等的功能。更重要的是保證 SLA ,可以讓連線的穩定性更好。而且計價方式原則上和 Open AI 一樣。
今天我們就來講怎麼用 Azure Open AI 上的 text-embedding-ada-002
來做 embedding。
微軟現在很怕 AI 被濫用,因此 Azure Open AI 不是隨開隨用的,必須要事先申請才可以。申請連結如下:
https://aka.ms/oai/access
現在的申請表格已經比當年簡化很多了。當年要申請 Azure Open AI 時,我根本還寫了一篇小論文,說要對用 Azure Open AI 來做什麼樣子的研究,而且還被退件了一次。現在的話,只要如實填寫好上面的表格就好了。
如果收到微軟回信說通過申請的話,就可以在 Azure 裡建立 Azure Open AI 的資源了。
Azure AI Services
之後,在左邊選單裡點選 Azure OpenAI,然後在點上方的 Create 按鈕,如下圖所示。text-embedding-ada-002
,如下圖所示,然後取名,注意這個 deployment name 很重要,然後 create。Keys and Endpoints
,在這裡我們記下端點和 key。接著回到你的 VScode 專案裡,在 terminal 使用 poetry add openai
。
接著建立一個檔案叫 ada_embedding.py
,貼上下面的程式碼。
import openai
EMBEDDING_MODEL_NAME = "embedding-ada-002" # 你剛剛在 Azure OpenAI 上建立的模型名稱
openai.api_base = "https://japanopenai2023ironman.openai.azure.com/" # 你的 endpoint
openai.api_key = "你的 key "
openai.api_type = "azure"
openai.api_version = "2023-03-15-preview"
response = openai.Embedding.create(
input="我會披星戴月的想你,我會奮不顧身的前進,遠方煙火越來越唏噓,凝視前方身後的距離",
engine=EMBEDDING_MODEL_NAME
)
# 這裡的 response['data'][0]['embedding'] 就是我們要的 embedding
print(response['data'][0]['embedding'])
這樣子就完成了使用 Azure Open AI 來做 embedding 啦!明天開始我們來把 embedding 儲存到向量資料庫裡面。